Conventionally, there is known a communication terminal referred to a mobile terminal. For example, a mobile personal computer, a mobile phone and the like are an example of the mobile terminal. Software (OS, application program) is installed in such mobile terminal to run to allow the mobile terminal to operate in various functions.
In addition, in the field of information process apparatus, a mode becomes common in which installed software is updated for use as appropriate. Also for software of the mobile terminal, demand grows to update software after a product shipment for a purpose such as a failure correction, a design change, a function addition and a revision of held information.
Various techniques which have been proposed in order to perform such software update will be described in the following.    (1) A technique in which, for a query from a terminal, a server gives a response of an importance degree of a software, a software update time, a model type, a version information and the like (see, for example, Japanese Laid-open Patent Publication No. 2006-340196).    (2) A technique in which a server determines a priority based on operation history information for each file transmitted from a terminal, and downloads a file with a high priority (see, for example, Japanese Laid-open Patent Publication No. 2000-222296).    (3) A technique in which a server which receives request data including generation information transmitted from a terminal returns response data including a priority (see, for example, Japanese Laid-open Patent Publication No. 2005-196269).    (4) A technique in which, before a task is started, competition is determined among plural tasks by querying a competition control section for a start go-no-go decision, and the start go-no-go decision of the task is determined (see, for example, Japanese Laid-open Patent Publication No. 2003-177926).    (5) A technique in which competitions among plural tasks are controlled in an application start by an event notification (see, for example, Japanese Laid-open Patent Publication No. 2005-284904).    (6) A technique in which, if a program is such large that communication time is excessive for downloading, a time period when an apparatus is available for use or a time period when a communication rate is low (see, for example, Japanese Laid-open Patent Publication No. 2003-078637).    (7) A technique in which, each terminal is caused to store data and time for an update of terminal software, a host computer determines based on the information when the host computer is logged in and automatically transfers new software if appropriate so as to make the terminal software to be automatically updated (see, for example, for example, Japanese Laid-open Patent Publication No. H03-244030).
Including the above-described techniques from (1) through (7), techniques for software update in a mobile terminal are classified into methods such as a method of updating manually by a user, a method of instantly updating by a server notification and a method of updating based on time designation by a server notification. Among these, the method of updating based on time designation by a server notification is more advantageous than other methods from the point of view of a load distribution of a server, because timing of software update performed in a number of mobile terminals are adjusted on a server side. However, in the following cases, it is impossible to perform a software update at a time designated by a server.    [Case 1] A case where a state of network is abnormal. At a time designated by a server, if a location where a terminal exists is a blind spot of a communication network to communicate with the server or if the communication network restricts communication, it is impossible to download an update file from the server because the network communication may not be carried out.    [Case 2] A case where a state of a terminal is abnormal. At a time designated by a server, if a battery remaining amount is small and a battery exhaustion occurs while an update file is downloaded from a server or while a software update is in process, it is impossible to complete normally the software update.
In addition, as software to be updated, there is software to be updated by servers of respective different parties such as OS family software and application family software. In such case, when update times in respective parties compete, it is required to make an update of OS family software a higher priority than an update of application family software. As a result, in the following cases, it is also impossible to automatically perform a software update at a time as designated by a server.    [Case 3] A case where an update start time comes for application family software while an update of OS family software is in process.An earlier process to update OS family software is performed on a priority basis, and a latecomer process to update application family software is discarded.    [Case 4] A case where an update start time comes for OS family software while an update of application family software is in process.A latecomer process to update OS family software is performed on a priority basis, and an earlier process to update application family software is discarded halfway and not completed normally.
In the above-described cases 1 through 4, because it is impossible to perform an automatic software update at a time designated by a server, a resume of a failed software update has to be left to a software update operation by a manual operation of a user. Thus, a software update is performed by a manual operation when the update is available. However, there are following problems.    [Problem 1] If a lot of software updates by manual operations are performed simultaneously at a same time, loads are concentrated to a server.    [Problem 2] Because there is a possibility that a user may forget a manual update, a reliable update may not be secured even for an important software update.
Of these problems, the problem 2 is specifically critical. In any of the above-described techniques from (1) through (7), once a software update is failed, a subsequent update may not be assured.
These problems may occur generally in a communication terminal not limited to a mobile terminal.